package com.leo.basic.chapter06;

import java.util.Arrays;
import java.util.Comparator;
import java.util.Set;

/**
 * 贪心法求解带时限的作业排序
 * @author xuexiaolei
 * @version 2017年12月07日
 */
public class GreedyAlgorithm2 {

    /**
     * 一般思路求解：
     *      1、将作业的收益按非增次序排序
     *      2、按照顺序依次将作业放入结果集，并判断是否有作业执行失败
     *      3、返回结果集
     * @param n     作业个数
     * @param job   作业内容，是一个 int[n][3] 的数组，jod[n][0]表示作业编号，jod[n][1]表示作业最后时限，jod[n][2]表示作业收益
     * @return      返回作业结果集
     */
    public static int[] greeedyJob(int n,int[][] job){
        //按照作业收益非递增排序
        Arrays.sort(job, new Comparator<int[]>() {
            @Override public int compare(int[] o1, int[] o2) {
                return o2[2]-o1[2]>0?1:-1;
            }
        });
        //依次放入结果集并判断
        int[] result = new int[n];
        return result;
    }

    public static void main(String[] args) {
        double[] w = new double[]{18,15,10};
        double[] v = new double[]{25,24,15};
    }
}
